// pages/doit/doit.js
// 引入公共函数
let self = require('../../utils/common.js');  
// 用入数据
let postData = require("../../data/lj-data.js");

// 以下3个具不用

// 每关关卡获取值
// function getEachLevel(gelCountDown, gelSjLevelScope, gelInit) {
//   let countDowm = gelCountDown;   // 倒计时
//   let sjLevelScope = gelSjLevelScope;  // 取题范围  ？common.js获取到对象应该怎么办
//   let sjInit = gelInit;     // 取题数量
//   let sjResultsObj = self.chooseProblems(sjLevelScope, sjInit);   // 抽题返回
//   let resSelectedProblemsId = sjResultsObj.a;   // 被抽取题目id
//   let resSyLevelId = sjResultsObj.b;    // 剩余题目id
//   let renderProblems = [];     // 被抽取题目
//   for (let i = 0; i < resSelectedProblemsId.lenght; i++){
//     // 循环遍历把抽到的题目，存入renderProblems
//     renderProblems.push(this.data.ljLists[resSelectedProblemsId[i] - 1]);
//   }
//   // 把二阶段获得的数据存入 base-self-data
//   bdGameLevel = bdGameLevel+1;
//   bdSelectedProblems = renderProblems;
//   bdSyLevelId = resSyLevelId;
//   bdCountDowm = countDowm;
//   // 把 base-self-data 存入缓存
//   try {
//     wx.setStorageSync('hcGameLevel', bdGameLevel);
//     wx.setStorageSync('hcCountdown', bdCountDowm);
//     wx.setStorageSync('hcSyLevelId', bdSyLevelId);
//     wx.setStorageSync('hcSelectedProblems', bdSelectedProblems);
//   } catch (e) {
//     console.log(e)
//   }
// }

// 第三阶段：渲染页面
// function renderPage(){
//   // 把 base-self-data 显示在 Page/data中
//   console.log('111')
//   this.data.gameLevel = bdGameLevel;
//   this.data.countdown = bdCountDowm;
//   this.data.selectedProblems = bdSelectedProblems;
//   this.data.syLevelId = bdSyLevelId;
// }

// base 初始化 & nextButton
// function baseLevel() {
//
//   // base-self-data
//   let bdGameLevel = '';            // 关卡
//   let bdCountDowm = 10;           // 倒计时
//   let bdSelectedProblems = [];    // 关卡题目
//   let bdSyLevelId = [];           // 剩余题目id
//   //let bdProblemsNum = '';       // 题目数量
//
//   // 阶段一：1.判断缓存关卡是否存在；2.判断第几关；3.缓存数据存变量；
//   try {
//     let hcGameLevel = wx.getStorageSync('hcGameLevel')
//     if (hcGameLevel) {
//       bdGameLevel = hcGameLevel
//     }
//   } catch (e) {
//     console.log(e)
//   }
//
//   if (bdGameLevel) {   // 有缓存
//     try {
//       let hcSelectedProblems = wx.getStorageSync('hcSelectedProblems');
//       if (hcSelectedProblems) {
//         bdSelectedProblems = hcSelectedProblems
//       }
//       let hcSyLevelId = wx.getStorageSync('hcSyLevelId');
//       if (hcSyLevelId) {
//         bdSyLevelId = hcSyLevelId
//       }
//       let hcCountDowm = wx.getStorageSync('hcCountdown');
//       if (hcCountDowm) {
//         bdCountDowm = hcCountDowm
//       }
//       /*let hcProblemsNum = wx.getStorageSync('problemsNum');
//       if (hcProblemsNum) {
//         bdProblemsNum = hcProblemsNum
//       }*/
//     } catch (e) {
//       console.log(e)
//     }
//   } else {   // 没缓存
//     console.log('isNext1')
//     // bdGameLevel = 0;
//     // that.setData({
//     //   isNext: 1
//     // })
//     // console.log('bdGameLevel:'+bdGameLevel)
//     // console.log('isNext2:'+that.data.isNext)
//   }
//
//   // 阶段二：1.判断‘重新进入’还是‘下一关’；2.‘重新进入’跳过第二阶段；3.‘第1关’&‘下一步’抽奖
//   // if (that.data.isNext == 1) {  // isNext=1，抽奖
//   //   if (bdGameLevel == 0){      // 关卡=0，为第1关
//   //     let setGelSjLevelScope = bdSyLevelId.levelA;
//   //     getEachLevel(10, setGelSjLevelScope,1);
//   //   } else{    // 关卡!=0，其他关卡
//   //     if (bdGameLevel > 1 && bdGameLevel<=3){   // 1-20
//   //       let setGelSjLevelScope = bdSyLevelId.levelA;
//   //       getEachLevel(10, setGelSjLevelScope,1);
//   //     } else if (bdGameLevel >= 4 && bdGameLevel<=6){   // 1-20
//   //       let setGelSjLevelScope = bdSyLevelId.levelA;
//   //       getEachLevel(9, setGelSjLevelScope,2);
//   //     } else if (bdGameLevel >= 7 && bdGameLevel <= 9) {    // 1-25
//   //       let setGelSjLevelScope = bdSyLevelId.levelA + bdSyLevelId.levelB;
//   //       getEachLevel(8, setGelSjLevelScope,3);
//   //     } else if (bdGameLevel >= 10 && bdGameLevel <= 12) {   // 1-30
//   //       let setGelSjLevelScope = bdSyLevelId.levelA + bdSyLevelId.levelB + bdSyLevelId.levelC;
//   //       getEachLevel(7, setGelSjLevelScope,4);
//   //     } else{
//   //       // 超过30题，测试结束，跳转到分享
//   //       wx.navigateTo({
//   //         url: '../share/share'
//   //       });
//   //     }
//   //   }
//   //   // 完成后，设置isNext=0
//   //   that.setData({
//   //     isNext: 0
//   //   })
//   // } else {   // isNext=0，直接去渲染页面
//   //   renderPage();
//   // }
//
//   // 阶段三：渲染页面
//   //renderPage();
//
// }


Page({

  /**
   * 页面的初始数据
   */
  data: {
    x: 0,
    y: 0,

    // 只在data中更新
    isNext: 0,                            // 默认，退出重新进入 值为0
    problemsNum: '',                      // 题目数量

    // 从数据库提取
    ljLists: postData.pdata[0].ljLists,   // 数据库所有题目
    levelId: postData.pdata[1].levelId,   // 数据库所有题目的id等级

    // data中更新，存入缓存
    gameLevel: 0,                         // 关卡
    countdown: 10,                        // 倒计时
    selectedProblems: [],                 // 被抽中题目
    syLevelId: [],                        // 所有剩余题目的id等级

  },

  onPageScroll: function (res) {
    console.log(res);
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let that = this;

    // x,y的随机取值
    let numX = self.selectFrom(0, 244);
    let numY = self.selectFrom(0, 171);
    that.setData({
      x: numX,
      y: numY
    });
    this.onPageScroll();

    // 第1次进入 和 第n次进入
    // base-self-data
    let bdGameLevel = '';           // 关卡
    let bdCountDowm = 10;           // 倒计时
    let bdSelectedProblems = [];    // 关卡题目
    let bdSyLevelId = [];           // 剩余题目id
    //let bdProblemsNum = '';       // 题目数量

    console.log('bdGameLevel'+bdGameLevel);
    console.log('bdCountDowm'+bdCountDowm);
    console.log('bdSelectedProblems'+bdSelectedProblems);
    console.log('bdSyLevelId'+bdSyLevelId);

    // 阶段一：1.判断缓存关卡是否存在；2.判断第几关；3.缓存数据存变量；
    try {
      let hcGameLevel = wx.getStorageSync('hcGameLevel');  // 获取缓存关卡
      console.log('hcGameLevel'+hcGameLevel);
      if (hcGameLevel) {
        bdGameLevel = hcGameLevel
      }
    } catch (e) {
      console.log(e)
    }

    if (bdGameLevel) {   // 判断是否存在本地关卡
      try {
        let hcSelectedProblems = wx.getStorageSync('hcSelectedProblems');  // 缓存关卡题目
        if (hcSelectedProblems) {
          bdSelectedProblems = hcSelectedProblems
        }
        let hcSyLevelId = wx.getStorageSync('hcSyLevelId');  // 缓存剩余题目id
        if (hcSyLevelId) {
          bdSyLevelId = hcSyLevelId
        }
        let hcCountDowm = wx.getStorageSync('hcCountdown');  // 缓存倒计时
        if (hcCountDowm) {
          bdCountDowm = hcCountDowm
        }
        /*let hcProblemsNum = wx.getStorageSync('problemsNum');
        if (hcProblemsNum) {
          bdProblemsNum = hcProblemsNum
        }*/
      } catch (e) {
        console.log(e)
      }
    } else {   // 没本地关卡
      bdGameLevel = 0;  // 设定关卡为0
      this.setData({  // 更改data，'第1次'和'下一关'按钮进入，isNext为1
        isNext: 1
      });
    }

    // 阶段二：1.判断‘重新进入’还是‘下一关’；2.‘重新进入’跳过第二阶段；3.‘第1关’&‘下一步’抽奖
    if (this.data.isNext == 1) {  // isNext=1，抽题，第1次or下一关 进入
      console.log('isNext:'+this.data.isNext);
      if(bdGameLevel == 0){   // 本地关卡=0，为第1关
        console.log('二阶段bdGameLevel：'+bdGameLevel);
        bdSyLevelId = this.data.levelId;
        let setGelSjLevelScope = bdSyLevelId.levelA;
        console.log('setGelSjLevelScope：'+setGelSjLevelScope);
        this.getEachLevel(10, setGelSjLevelScope,1,bdGameLevel);
      } else {   // 关卡!=0, 下一关

      }
    } else {  // isNext=0，退出过，直接到第三阶段
      this.renderPage();
    }

    // 第三阶段：渲染页面
    this.renderPage();
    console.log('data:gameLevel:'+this.data.gameLevel+',countdown:'+this.data.countdown)
    console.log('data:selectedProblems:'+this.data.selectedProblems+',syLevelId:'+this.data.syLevelId)

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  // common: 每关关卡获取值
  getEachLevel: function(gelCountDown, gelSjLevelScope, gelInit,bdGameLevel,bdSelectedProblems,bdSyLevelId,bdCountDowm){
    console.log('getEachLevel:gelCountDown:'+gelCountDown+',gelSjLevelScope:'+gelSjLevelScope.length+',gelInit:'+gelInit+',bdGameLevel:'+bdGameLevel);
    let countDowm = gelCountDown;   // 倒计时
    let sjLevelScope = gelSjLevelScope;  // 取题范围
    let sjInit = gelInit;     // 取题数量
    let sjResultsObj = self.chooseProblems(sjLevelScope, sjInit);   // 抽题返回
    let resSelectedProblemsId = sjResultsObj.a;   // 被抽取题目id
    let resSyLevelId = sjResultsObj.b;    // 剩余题目id
    let renderProblems = [];     // 被抽取题目
    for (let i = 0; i < resSelectedProblemsId.length; i++) {
      // 循环遍历被抽取题目id，存入renderProblems
      renderProblems.push(this.data.ljLists[resSelectedProblemsId[i] - 1]);
      console.log('renderProblems:'+this.data.ljLists[resSelectedProblemsId[i] - 1].name);
    }
    // 把二阶段获得的数据存入 base-self-data
    bdGameLevel = bdGameLevel+1;
    bdSelectedProblems = renderProblems;
    bdSyLevelId = resSyLevelId;
    bdCountDowm = countDowm;
    console.log('getEachLevel:bdGameLevel:'+bdGameLevel+',bdSelectedProblems:'+bdSelectedProblems);
    console.log('getEachLevel:bdSyLevelId:'+bdSyLevelId.length+',bdCountDowm:'+bdCountDowm);
    //return { a: bdGameLevel, b: bdSelectedProblems, c: bdSyLevelId, d: bdCountDowm};
    // 把 base-self-data 存入缓存
    try {
      wx.setStorageSync('hcGameLevel', bdGameLevel);
      wx.setStorageSync('hcCountdown', bdCountDowm);
      wx.setStorageSync('hcSyLevelId', bdSyLevelId);
      wx.setStorageSync('hcSelectedProblems', bdSelectedProblems);
    } catch (e) {
      console.log(e)
    }
  },

  // 第三阶段：渲染页面
  renderPage: function(){
    this.setData({
      gameLevel: wx.getStorageSync('hcGameLevel'),
      countdown: wx.getStorageSync('hcCountdown'),
      selectedProblems: wx.getStorageSync('hcSelectedProblems'),
      syLevelId: wx.getStorageSync('hcSyLevelId')
    });
  },

  // base 初始化 & nextButton
  baseLevel: function () {


    // 阶段二：1.判断‘重新进入’还是‘下一关’；2.‘重新进入’跳过第二阶段；3.‘第1关’&‘下一步’抽奖
    if (this.data.isNext == 1) {  // isNext=1，抽奖
      if (bdGameLevel == 0){      // 关卡=0，为第1关
        console.log('isNext:'+this.data.isNext+'bdGameLevel'+bdGameLevel);
        bdSyLevelId = this.data.levelId;
        let setGelSjLevelScope = bdSyLevelId.levelA;
        console.log('setGelSjLevelScope'+setGelSjLevelScope)
        this.getEachLevel(10, setGelSjLevelScope,1,bdGameLevel);
      } else{    // 关卡!=0，下一关
        // if (bdGameLevel > 1 && bdGameLevel<=3){   // 1-20
        //   let setGelSjLevelScope = bdSyLevelId.levelA;
        //   this.getEachLevel(10, setGelSjLevelScope,1);
        // } else if (bdGameLevel >= 4 && bdGameLevel<=6){   // 1-20
        //   let setGelSjLevelScope = bdSyLevelId.levelA;
        //   this.getEachLevel(9, setGelSjLevelScope,2);
        // } else if (bdGameLevel >= 7 && bdGameLevel <= 9) {    // 1-25
        //   let setGelSjLevelScope = bdSyLevelId.levelA + bdSyLevelId.levelB;
        //   this.getEachLevel(8, setGelSjLevelScope,3);
        // } else if (bdGameLevel >= 10 && bdGameLevel <= 12) {   // 1-30
        //   let setGelSjLevelScope = bdSyLevelId.levelA + bdSyLevelId.levelB + bdSyLevelId.levelC;
        //   this.getEachLevel(7, setGelSjLevelScope,4);
        // } else{
        //   // 超过30题，测试结束，跳转到分享
        //   wx.navigateTo({
        //     url: '../share/share'
        //   });
        // }
      }
      // 完成后，设置isNext=0
      this.setData({
        isNext: 0
      })
    } else {   // isNext=0，直接去渲染页面
      this.renderPage(bdGameLevel,bdCountDowm,bdSelectedProblems,bdSyLevelId);
    }

    // 阶段三：渲染页面
    this.renderPage(bdGameLevel,bdCountDowm,bdSelectedProblems,bdSyLevelId);


  }

})